/**
 *on 2018/2/12
 前言
 在开始本文的正文之前，我们先来看一下angular2中将带标签的文本输出在页面上的相关内容，
 为了系统性的防范XSS问题，Angular默认把所有值都当做不可信任的。
 当值从模板中以属性（Property）、DOM元素属性（Attribte)、CSS类绑定或
 插值表达式等途径插入到DOM中的时候， Angular将对这些值进行无害化处理（Sanitize），
 对不可信的值进行编码。

 *发现问题
 大家都知道Angular 中有 innerHTML 属性来设置要显示的内容，但是如果内容包含 CSS 样式，
 无法显示样式的效果。
 比如：
 public content: string = "<div style='font-size:30px'>Hello Angular</div>";
 在html页面中使用
 <p [innerHTML]="content"></p>
 只会显示 Hello World ,字体不会是 30px，也就是 CSS 样式没有效果。

 *解决方案
 在这里自定义一个Pipe来对内容做转换，写一个HtmlPipe类，即本文件
 使用时：
 1、在需要的模块里面引入模块 HtmlPipeModule：
 　　imports: [
 　　　　xxxModule,
 　　　　xxxModule,
 　　　　HtmlPipeModule
 　　],
 2、在innerHtml中增加管道名字html：
 　　<p [innerHTML]="content | html"></p>
 即可

 *资料来源：http://www.jb51.net/article/127599.htm   2017-11-06   作者：1CSH1
 * */
import {Pipe, PipeTransform} from '@angular/core';
import {DomSanitizer} from '@angular/platform-browser';
import {HtmlPipeModule} from './html-pipe.module';
import {SponsorRoutingModule} from '../routes/sponsor/sponsor-routing.module';
import {SharedModule} from '@shared/shared.module';

@Pipe({
    name: 'html'
})

export class HtmlPipe implements PipeTransform {

    constructor(private sanitizer: DomSanitizer) {

    }

    transform(style) {
        return this.sanitizer.bypassSecurityTrustHtml(style);
    }
}
